Testing logic code written for execution on a computing system is a critical step in detecting and exposing potential errors during software development. Most existing techniques mainly focus on testing the sequential execution aspects. Such techniques cannot effectively address potential errors in a section of logic code that is written for concurrent execution of multiple processes.
The currently available testing schemes that do focus on the concurrent execution aspects of a logic code or program are, at times, inefficient. For example, such tests are limited to identifying a process based on process ID, process type, or the process's origination address. Such schemes can be used to identify different instances of a process spawned by a code block.
Typically, said tests fail to take into account the execution history of a process with respect to the resources accessed by the process. Moreover, the results obtained from several test runs or different instances of a process cannot be properly correlated for each run or instance. Thus, processes that originate from the same code location, during the same or different test runs, may not be distinguishable from one another.